package com.itheima.d8_interface_jdk8;

public interface A {
    //抽象方法
    void method1();

    /**
     * 1、默认方法：必须使用default修饰，默认会被public修饰
     * 实例方法：对象的方法，必须使用实现类的对象来访问。
     * 子类可以直接用，也可以在子类重写使用
     */
    default void method2() {
        System.out.println("我是接口中的默认方法");

        method1();
        method3();
        method4();
        method5();
    }


    /**
     * 2、静态方法：必须使用static修饰，默认会被public修饰
     */
      static void method3() {
          System.out.println("我是接口的静态方法");
     }


    /**
     * 3、私有方法：必须使用private修饰。(JDK 9开始才支持的)
     * 实例方法：对象的方法。
     * 静态方法：类方法
     */

    private void method4() {

    }
    private static void method5() {

    }


}

class B implements A{
    @Override
    public void method1() {

    }

    @Override
    public void method2() {
        //调用父接口A中的方法
        //A.super.method2();

        System.out.println("子类重写了接口中的默认方法");
    }
}
